import Vue from 'vue'
import App from './App.vue'
import router from './router'
import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap/dist/js/bootstrap.min'
import axios from "axios"
import api from "./interface/index"
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import AFTableColumn from 'af-table-column'

Vue.use(AFTableColumn)
Vue.use(ElementUI);//使用elementUI
Vue.config.productionTip = false
Vue.prototype.$ajax = axios;  //配置ajax请求发送工具
//配置后台地址，开发环境 windows，生产环境linux
if(process.env.NODE_ENV === "development"){
  console.log("当前环境：Dev")
  Vue.prototype.$api = api.windows_api;
}else{
  Vue.prototype.$api = api.linux_api;
}


// 添加请求拦截器，在请求头中加token
axios.interceptors.request.use(
    config => {
      if (localStorage.getItem('access_token')) {
        config.headers.Authorization = localStorage.getItem('access_token');
      }
      return config;
    },
    error => {
      return Promise.reject(error);
    });

// 添加响应拦截器，判断返回状态
axios.interceptors.response.use(
    res => {
      //对响应数据做些事
      return res
    },
    error => {
      if (error.response.status === 401) {
        // 401 说明 token 验证失败
        // 提示用户登录过期，直接跳转到登录页面
        localStorage.removeItem("access_token");
        ElementUI.Message({
          message: "请先登录"
        })
        router.push('/login').catch(error => {
          console.log('您已回到登录页面', error)
        });
      } else if (error.response.status === 500) {
        // 服务器错误
        // do something
        return Promise.reject(error.response.data)
      }
      // 返回 response 里的错误信息
      return Promise.reject(error.response.data)
    })

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
